PICTools Programmer's Reference
PIC2List IPTCDataSet Packet Functions

The P2PktIPTCDataSet structure is defined as:

 
Copy Code
typedef struct {
   BYTE     Type;
   DWORD    Length;
   BYTE     Record;
   BYTE     DataSet;
   DWORD    DataSetType;
   DWORD    DataSetLength;
   BYTE     DataField[1];
} P2PktIPTCDataSet;

 

Name Description

Type

Set to P2P_IPTCDataSet to indicate that this packet contains an IPTC DataSet

Length

The total length of this packet in bytes

Record

The IPTC Record number for this DataSet (1..9)

DataSet

The IPTC DataSet number for this DataSet

DataSetType    

IPTC_UNDEFINED, IPTC_BYTE, IPTC_ASCII, IPTC_INTEGER, IPTC_3_10_Struct, IPTC_3_110_Struct

DataSetLength 

The Length, in bytes, of the following DataField field

DataField         

The DataSet's DataField

 

P2LAddIPTCDataSet

 
Copy Code

P2PktIPTCDataSet* P2LAddIPTCDataSet(

P2LIST*        p2l,

BYTE           rec,

BYTE           set,

DWORD          type,

DWORD          length,

Const BYTE*    data )

P2LAddIPTCDataSet adds an IPTC DataSet packet of the specified characteristics, enlarging the PIC2List if necessary. If the type is IPTC_UNDEFINED then it will be set according to the standard. If data is a null pointer, then the DataField field in the IPTC DataSet is set to 0.  P2LAddIPTCDataSet will return a 0 if a memory allocation error occurs while attempting to enlarge the PIC2List.

P2LDeleteIPTCDataSet

 
Copy Code

BOOL P2LDeleteIPTCDataSet(P2LIST* p2l, P2PktIPTCDataSet* pkt)

P2LDeleteIPTCDataSet is called to delete an IPTC DataSet packet from the PIC2List.  Pkt must point to the Type field of an IPTCDataSet packet within the PIC2List. No validation is performed.

P2LFindIPTCDataSet

 
Copy Code

P2PktIPTCDataSet* P2LFindIPTCDataSet(const P2LIST* p2l, BYTE rec, BYTE set);

P2LFindIPTCDataSet finds the first IPTC DataSet packet in the list with Record equal to rec and DataSet equal to set.  P2LFindIPTCDataSet will return a 0 if there is no matching IPTC DataSet packet in the PIC2List.

P2LFirstIPTCDataSet

 
Copy Code

P2PktIPTCDataSet* P2LFirstIPTCDataSet(const P2LIST* p2l);

P2LFirstIPTCDataSet will return a pointer to the first IPTC DataSet packet of any type.  P2LFirstIPTCDataSet will return a 0 if there are no IPTC DataSet packets in the PIC2List.

P2LModifyIPTCDataSet

 
Copy Code

P2PktIPTCDataSet* P2LModifyIPTCDataSet(const P2LIST* p2l,

constP2PktIPTCDataSet* pkt,

BYTE             rec,

BYTE             set,

DWORD            type,

DWORD            length,

constBYTE*       data);

P2LModifyIPTCDataSet modifies the IPTC DataSet pointed to by pkt, enlarging the PIC2List if necessary.  Pkt must point to the Type field of an IPTCDataSet packet within the PIC2List. If the type is IPTC_UNDEFINED then it will be set according to the standard.  If data is 0, then the DataField field in the IPTC DataSet packet is uninitialized.  P2LModifyIPTCDataSet will return a 0 if pkt is not in the PIC2List.  P2LModifyIPTCDataSet will return a 0 if a memory allocation error occurs attempting to enlarge the PIC2List.

P2LNextIPTCDataSet

 
Copy Code

P2PktIPTCDataSet* P2LNextIPTCDataSet(const P2LIST * p2l, const P2PktIPTCDataSet* pkt);

P2LNextIPTCDataSet will return a pointer to the first IPTC DataSet packet following pkt.  Pkt must point into the PIC2List to the Type field of an IPTC DataSet packet.  No validation is performed.  If 0 is returned, then there is no IPTC DataSet packet following the packet in the PIC2List.

 

 

 


©2022. Accusoft Corporation. All Rights Reserved.

Send Feedback